themedir = $(pkgdatadir)/theme
dist_theme_DATA = \
- theme/add-workspace.svg \
theme/calendar-arrow-left.svg \
theme/calendar-arrow-right.svg \
theme/close-window.svg \
theme/mosaic-view.svg \
theme/move-window-on-new.svg \
theme/process-working.png \
- theme/remove-workspace.svg \
theme/running-indicator.svg \
theme/scroll-button-down-hover.png \
theme/scroll-button-down.png \
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="23"
- height="15"
- id="svg6375"
- version="1.1"
- inkscape:version="0.47pre4 r22446"
- sodipodi:docname="New document 13">
- <defs
- id="defs6377">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 16 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="32 : 16 : 1"
- inkscape:persp3d-origin="16 : 10.666667 : 1"
- id="perspective6383" />
- <inkscape:perspective
- id="perspective6366"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="11.197802"
- inkscape:cx="16"
- inkscape:cy="16"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="1680"
- inkscape:window-height="997"
- inkscape:window-x="0"
- inkscape:window-y="26"
- inkscape:window-maximized="1" />
- <metadata
- id="metadata6380">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- transform="translate(0,-17)">
- <g
- style="display:inline"
- id="g6243"
- transform="translate(-986.28859,-658.2796)">
- <rect
- style="fill:#000000;fill-opacity:0.98770495;stroke:#666666;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
- id="rect5318"
- width="22"
- height="14"
- x="986.89801"
- y="675.86743"
- rx="0.49999979"
- ry="0.5" />
- <g
- id="g5320"
- transform="translate(402.77304,-12.882544)">
- <path
- id="path5322"
- d="m 595.125,692.53048 0,6.43903"
- style="fill:none;stroke:#666666;stroke-width:1.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- id="path5324"
- d="m 598.34451,695.75 -6.43902,0"
- style="fill:none;stroke:#666666;stroke-width:1.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
- </g>
- </g>
- </g>
-</svg>
outline: 2px solid white;
}
-.add-workspace {
-}
-
-.add-workspace:hover {
- background-color: rgba(128, 128, 128, 0.2);
-}
-
-.remove-workspace {
- height: 48px;
-}
-
-.remove-workspace:hover {
- background-color: rgba(128, 128, 128, 0.2);
-}
-
.window-caption {
background: rgba(0,0,0,0.8);
border: 1px solid rgba(128,128,128,0.40);
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="23"
- height="15"
- id="svg5501"
- version="1.1"
- inkscape:version="0.47pre4 r22446"
- sodipodi:docname="add-workspace.svg">
- <defs
- id="defs5503">
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 16 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="32 : 16 : 1"
- inkscape:persp3d-origin="16 : 10.666667 : 1"
- id="perspective5509" />
- <inkscape:perspective
- id="perspective5314"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="11.197802"
- inkscape:cx="-0.074583208"
- inkscape:cy="16"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:grid-bbox="true"
- inkscape:document-units="px"
- inkscape:window-width="1680"
- inkscape:window-height="997"
- inkscape:window-x="0"
- inkscape:window-y="26"
- inkscape:window-maximized="1"
- inkscape:snap-grids="true"
- inkscape:snap-bbox="true" />
- <metadata
- id="metadata5506">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- id="layer1"
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- transform="translate(0,-17)">
- <g
- style="display:inline"
- id="g6239"
- transform="translate(-953.97989,-657.32287)">
- <rect
- style="fill:#000000;fill-opacity:0.98770495;stroke:#666666;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
- id="rect5318-6"
- width="22"
- height="14"
- x="954.5"
- y="675"
- rx="0.49999979"
- ry="0.5" />
- <path
- style="fill:none;stroke:#666666;stroke-width:1.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
- d="m 968.71951,682 -6.43902,0"
- id="path5324-5" />
- </g>
- </g>
-</svg>
if (button == 1) {
this._onActivate(Clutter.get_current_event());
} else if (button == 2) {
- let newWorkspace = Main.overview.workspaces.addWorkspace();
- if (newWorkspace != null) {
- newWorkspace.activate(global.get_current_time());
- this.emit('launching');
- this.app.open_new_window();
- Main.overview.hide();
- }
+ // Last workspace is always empty
+ let launchWorkspace = global.screen.get_workspace_by_index(global.screen.n_workspaces - 1);
+ launchWorkspace.activate(global.get_current_time());
+ this.emit('launching');
+ this.app.open_new_window();
+ Main.overview.hide();
}
return false;
},
this._workspaces[i].syncStacking(stackIndices);
},
- // Handles a drop onto the (+) button; assumes the new workspace
- // has already been added
- acceptNewWorkspaceDrop: function(source, dropActor, x, y, time) {
- return this._workspaces[this._workspaces.length - 1].acceptDrop(source, dropActor, x, y, time);
- },
-
// Get the grid position of the active workspace.
getActiveWorkspacePosition: function() {
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
return [activeWorkspace.x, activeWorkspace.y];
},
- canAddWorkspace: function() {
- return global.screen.n_workspaces < MAX_WORKSPACES;
- },
-
- addWorkspace: function() {
- let ws = null;
- if (!this.canAddWorkspace()) {
- Main.overview.shellInfo.setMessage(_("Can't add a new workspace because maximum workspaces limit has been reached."));
- } else {
- let currentTime = global.get_current_time();
- ws = global.screen.append_new_workspace(false, currentTime);
- }
-
- return ws;
- },
-
- canRemoveWorkspace: function() {
- return this._getWorkspaceIndexToRemove() > 0;
- },
-
- removeWorkspace: function() {
- if (!this.canRemoveWorkspace()) {
- Main.overview.shellInfo.setMessage(_("Can't remove the first workspace."));
- return;
- }
- let index = this._getWorkspaceIndexToRemove();
- let metaWorkspace = this._workspaces[index].metaWorkspace;
- global.screen.remove_workspace(metaWorkspace,
- global.get_current_time());
- },
-
zoomOut: function() {
if (this._zoomOut)
return;
this._updateWorkspaceActors(true);
},
- _handleDragOverNewWorkspace: function(source, dropActor, x, y, time) {
- if (source.realWindow)
- return DND.DragMotionResult.MOVE_DROP;
- if (source.shellWorkspaceLaunch)
- return DND.DragMotionResult.COPY_DROP;
- return DND.DragMotionResult.CONTINUE;
- },
-
- _acceptNewWorkspaceDrop: function(source, dropActor, x, y, time) {
- let ws = this.addWorkspace();
- if (ws == null)
- return false;
- return this.acceptNewWorkspaceDrop(source, dropActor, x, y, time);
- },
-
// Compute the position, scale and opacity of the workspaces, but don't
// actually change the actors to match
_computeWorkspacePositions: function() {
controls.connect('notify::hover',
Lang.bind(this, this._onControlsHoverChanged));
- // Add/remove workspace buttons
- this._removeButton = new St.Button({ label: '–', // n-dash
- style_class: 'remove-workspace' });
- this._removeButton.connect('clicked', Lang.bind(this, function() {
- this.workspacesView.removeWorkspace();
- }));
- controls.add(this._removeButton);
-
this._thumbnailsBox = new St.BoxLayout({ vertical: true,
style_class: 'workspace-thumbnails' });
controls.add(this._thumbnailsBox, { expand: false });
indicator.add_constraint(constraint);
});
- this._addButton = new St.Button({ label: '+',
- style_class: 'add-workspace' });
- this._addButton.connect('clicked', Lang.bind(this, function() {
- this.workspacesView.addWorkspace();
- }));
- this._addButton._delegate = this._addButton;
- this._addButton._delegate.acceptDrop = Lang.bind(this,
- function(source, actor, x, y, time) {
- return this.workspacesView._acceptNewWorkspaceDrop(source, actor, x, y, time);
- });
- this._addButton._delegate.handleDragOver = Lang.bind(this,
- function(source, actor, x, y, time) {
- return this.workspacesView._handleDragOverNewWorkspace(source, actor, x, y, time);
- });
- controls.add(this._addButton, { expand: true });
-
this.workspacesView = null;
this._inDrag = false;